#ifndef QLSPLUGINWIDGET_H
#define QLSPLUGINWIDGET_H

#include <QPaintEvent>
#include <QResizeEvent>

#include <QWidget>

#include <plugins_manager/qls_plugins_manager.h>

#include "qls_plugins_manager_appfwk_global.h"

namespace Ui {
class QLS_PLUGINS_MANAGER_APPFWK_EXPORT QLsPluginWidget;
}

class QLS_PLUGINS_MANAGER_APPFWK_EXPORT QLsPluginWidget : public QWidget
{
    Q_OBJECT

public:
    explicit QLsPluginWidget(QWidget *parent = nullptr);
    ~QLsPluginWidget();

    /* 获取插件信息 */
    PluginInfo pluginInfo() const;
    /* 设置插件信息 */
    void setPluginInfo(const PluginInfo &pluginInfo);

signals:
    /* 加载插件的信号 */
    void sigLoad(PluginInfo &);

protected:
    /* 绘图事件重载 */
    void paintEvent(QPaintEvent *event);
    /* 尺寸变化事件重载 */
    void resizeEvent(QResizeEvent *event);

private:
    /* 根据尺寸修改插件信息标签显示内容 */
    void ChangeInformationLabelTextBySize();

private slots:
    /* 加载 */
    void on_loadBtn_clicked();

private:
    Ui::QLsPluginWidget *ui;

    PluginInfo m_pluginInfo; /* 插件信息 */
};

#endif // QLSPLUGINWIDGET_H
